1. Field of the Invention
The present invention generally relates to data communications systems and, more particularly, to data communications systems which enable data compression and allow re-synchronization of transmit and receive compression dictionaries when an error is detected, without disrupting the connection.
2. Background Description
Data compression is widely used in voice-band modems today, using an international standard; i.e., International Telecommunications Union-Telecommunications Services Sector (ITU-T)(formerly Consultative Committee on International Telephone and Telegraphy (CCITT)). The V.42bis protocol specifies data compression for modems which depends on reliable delivery of data via error detection and recovery mechanisms, such as V.42. An example of a voice-band modem using data compression based on the well-known Lempel/Ziv algorithm is described in U.S. Pat. No. 4,814,746 to Victor S. Miller et al. for xe2x80x9cData Compression Methodxe2x80x9d. In particular, the Miller et al. patent describes communications between a host computing system and a number of remote terminals. According to the Miller et al. patent, this communication is enhanced by a data compression method which modifies the data compression method of Lempel and Ziv by addition of new character and new string extensions to improve the compression ratio, and deletion of a least recently used routine to limit the encoding tables to a fixed size to significantly improve data transmission efficiency.
A system requirement in these systems is that the data processed by the receiving data compression unit must be free of errors. Otherwise, the receive dictionary in that modem will get out of sync with the transmit dictionary in the modem at the other end of the communications link. Voice band modems typically address this issue by adding an error control function (i.e., V.42, MNP 4) which detects errors and requests retransmission of data blocks received in error.
U.S. Pat. No. 5,130,993, to Michael Gutman et al. for xe2x80x9cTransmitting Encoded Data on Unreliable Networksxe2x80x9d describes a system in which information encoded by data compression (or another data encoding technique, e.g., encryption, requiring synchronization between the encoder and decoder) is transmitted over an unreliable network by checking for transmission errors after decoding. If an error is detected, the encoder is reset, using a reset protocol compression codeword which may operate over an unreliable reverse channel by using a timer to generate further reset requests when the receiver does not acknowledge them in a timely fashion since multiple errors may corrupt an initial attempt to send reset requests.
It is therefore an object of the present invention to provide a mechanism in a data communication system which allows re-synchronization of transmit and receive compression dictionaries when an error is detected, without disrupting the connection in the other direction.
Re-synchronization of sets of transmit and receive state variables in a communication system is achieved when an error is detected, without disrupting the connection. Each of first and second transceivers, connected by a communications channel, have a common set of transmit and receive state variables supporting a data encoding algorithm function. The transmitter of one of the first and second transceivers first encodes data to be transmitted and updates the transmit state variables according to the data encoding algorithm and generates a Cyclic Redundancy Check (CRC) checksum for each data block to be transmitted. The receiver of the receiving transceiver converts the received signal into a bit stream and processes the bit stream by a CRC checksum validating whether or not each data block has been received correctly. The data blocks are passed through the data decoding algorithm function at the receiver, which converts the data to correspond to its original form. During the process of decoding the data, the receive state variables are updated according to the same algorithm used to update the transmit state variables, thereby keeping the two sets of state variables in synchronism with each other. When an error is detected by the CRC checksum by one of the first or second transceivers, re-synchronization occurs by switching to transparent mode and resetting the corresponding transmit and receive sets of state variables in the direction of communication in which the error occurred.
According to a preferred embodiment of the invention, the data encoding algorithm is a data compression algorithm and the sets of state variables are transmit and receive compression dictionaries. The transmitter of a first transceiver first compresses the data to be transmitted, and updates the transmit compression dictionary according to standard data compression algorithms. The transmitter also generates the CRC checksum, and the data is then encoded for Forward Error Correction (FEC) and transmitted across the communications channel to the receiver of a second transceiver. Within the second transceiver, the received signal is converted into a bit stream which is processed by the FEC function which corrects most errors in the bit stream. A CRC checksum validates whether or not each data block has been received correctly. Most data blocks will be either received correctly, or be correctable to the desired data content via the FEC function. These data blocks will be passed through the data decompression algorithm which will expand the data to correspond to its original form. During the process of decompressing the data, the receive compression dictionary will be updated according to the same algorithm used to update the transmit compression dictionary, thus keeping the two dictionaries in synchronism with each other when errors are detected. In the event of an error, the Transparent Mode (TM) command is used instead of a compression codeword to achieve a more flexible system. Another object of the invention is to delay error recovery procedures until the line is error free again, thereby avoiding timeout due to additional errors corrupting the error recovery procedure.